var db, audio;
var setting = new function () { // Извлечение настроек для background
    this.reload     = localStorage['reload']   ? localStorage['reload']   : 0.5;
    this.volume     = localStorage['volume']   ? localStorage['volume']   : 0.5;

    if (!localStorage['timezone'] || !localStorage['nick']) {
        $.getJSON('http://wapinet.ru/forum/ajax.server.php?informer&method=getConfig', function (arr) {
            if (arr.status === true) {
                if (!localStorage['timezone']) {
                    setting.timezone = localStorage['timezone'] = arr.data.timezone;
                }
                if (!localStorage['nick']) {
                    setting.nick = localStorage['nick'] = arr.data.username;
                }
            }
        });
    } else {
        this.timezone   = localStorage['timezone'] ? localStorage['timezone'] : 3;
        this.nick       = localStorage['nick'];
    }
    this.sound      = 'notification.wav';
};

chrome.extension.onRequest.addListener(function (request, sender) {
    if (request.msg === 'setting') {
        location.reload(true);
    } else if (request.msg === 'blink') {
        blink.stop();
    }
});

var blink = new function () {    // Мигалка
    this.works = false;          // Включен или нет
    this.step = 0;               // Шаг цвета
    this.timeId = 0;             // clearTimeout
    this.start = function (action, lastPostId, subject) {
        notification = webkitNotifications.createHTMLNotification('notification.html?' + action + '#' + lastPostId + '&' + subject); // Создаем уведомление
        notification.show(); // Показать
        if (blink.works === true) { // Если уже мигает то не надо запускать повторно
            return;
        }
        blink.works = true; // сохраняем Включен
   	    chrome.browserAction.setBadgeText({text: 'NEW'}); // Цепляем текст к иконке
        blink.flip(); // Начнем мигить фоном текста
    };
    this.flip = function() { // Мигаем фоном текста путем последовательной замены его цвета
        switch(blink.step) {
            case 0:
                blink.step++;
                chrome.browserAction.setBadgeBackgroundColor({color: [255,255,255,255]});
                break;

            case 1:
                blink.step++;
                chrome.browserAction.setBadgeBackgroundColor({color: [255,170,170,255]});
                break;

            case 2:
                blink.step++;
                chrome.browserAction.setBadgeBackgroundColor({color: [255,85,85,255]});
                break;

            case 3:
                blink.step++;
                chrome.browserAction.setBadgeBackgroundColor({color: [255,0,0,255]});
                break;

            case 4:
                blink.step++;
                chrome.browserAction.setBadgeBackgroundColor({color: [255,85,85,255]});
                break;

            case 5:
                blink.step = 0;
                chrome.browserAction.setBadgeBackgroundColor({color: [255,170,170,255]});
                break;

            default:
                blink.step = 1;
                chrome.browserAction.setBadgeBackgroundColor({color: [255,255,255,255]});
                break;
        }
        if (blink.works === true) { // Проверка на вкл. или нет (Если не успел очистится таймаут)
            blink.timeId = setTimeout(blink.flip, 100);
        }
    };
    this.stop = function () { // Остановка
        blink.works = false;
        blink.step = 0;
        clearTimeout(blink.timeId);
   	    chrome.browserAction.setBadgeText({text: ''}); // Чистим иконку
    };
};

$(document).ready(function () { // Запуск функций
    audio = new Audio(setting.sound);
    audio.volume = setting.volume;

    db = getForum(); // Выгружаю с базы данные форума
    connect(1);
});